package com.browsesoft.htmlcomponent;

import java.util.LinkedList;

import org.w3c.dom.Element;

/**
 * HTML树模型，用于保存HTM树的数据
 * 
 * @author Browsesoft
 * @version 1.0
 */
public interface HTMLTreeModel extends HTMLBasicModel {
	/**
	 * 取得根结点
	 * 
	 * @return 根结点
	 */
	public Object getRootNode() throws Exception;

	/**
	 * 根据结点返回子结点
	 * 
	 * @return 子结点
	 */
	public LinkedList getChildNodes(Object node) throws Exception;

	/**
	 * 根据结点返回结点的名称
	 * 
	 * @return 结点的名称
	 */
	public String getName(Object node) throws Exception;

	/**
	 * 根据结点返回结点的id
	 * 
	 * @return 结点的名称
	 */
	public String getID(Object node) throws Exception;

	/**
	 * 根据id找到结点对象
	 * 
	 * @return 结点对象
	 */
	public Object getObject(String ID) throws Exception;

	/**
	 * 设置链接内容
	 * 
	 * @param nodeLink
	 *            链接'
	 * @param modelNode
	 *            树节点对应的model的节点
	 */
	public void setContextNode(Element nodeLink, Object modelNode)
			throws Exception;

	// /**
	// * 判断是否有子节点
	// */
	// public boolean hasChilds(Object obj) ;
	/**
	 * 得到节点对应的图标
	 * 
	 * @param node
	 *            节点
	 * @return 图标
	 */
	public String getIcon(Object node);
}